package com.rambo.dsd.sys.ws.impl;

import com.rambo.dsd.sys.dao.inter.RoleUserDao;
import com.rambo.dsd.sys.dao.inter.po.RoleUserPO;
import com.rambo.dsd.sys.ws.inter.RoleUserWs;
import org.hibernate.criterion.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import java.util.List;


@Component
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class RoleUserWsImpl implements RoleUserWs {
    @Autowired
    private RoleUserDao roleUserPODao;

    @Override
    public RoleUserPO getRoleUser(String id) {
        RoleUserPO roleUserPO = roleUserPODao.getByKey(id);
        return roleUserPO != null ? roleUserPO : new RoleUserPO();
    }

    @Override
    public List<RoleUserPO> listRoleUser(RoleUserPO roleUserPO) {
        return roleUserPODao.findByExample(roleUserPO);
    }

    @Override
    public List<RoleUserPO> listRoleUserOrdrBy(RoleUserPO roleUserPO, String orderby, Boolean asc) {
        return roleUserPODao.findByExample(roleUserPO, asc ? Order.asc(orderby) : Order.desc(orderby));
    }

    @Override
    public RoleUserPO addRoleUser(RoleUserPO roleUserPO) {
        return roleUserPODao.add(roleUserPO);
    }

    @Override
    public RoleUserPO updateRoleUser(RoleUserPO roleUserPO) {
        return roleUserPODao.edit(roleUserPO);
    }

}